package com.ysd.annotation;

import java.lang.reflect.Method;

public class AnnotationParse {
    /**
     * 解析注解
     *
     * @param targetClassName 目标类（Class形式）
     * @param methodName      目标方法（在客户端调用哪个方法，methodName就代表哪个方法）
     * @return
     * @throws Exception
     */
    public static String parse(Class targetClassName, String methodName) throws Exception {
        //获得目标方法
        Method[] methods = targetClassName.getMethods();
        Method method = null;
        for (Method m : methods) {
            if (m.getName().equals(methodName)) {
                method = m;
            }
        }
        String methodAccess = "";
        if (method != null) {
            //判断目标方法上面是否存在@PrivilegeInfo注解
            if (method.isAnnotationPresent(QuanXian.class)) {
                //得到方法上的注解
                QuanXian quanXian = method.getAnnotation(QuanXian.class);
                //得到注解中的name值
                methodAccess = quanXian.name();
            }
        }

        return methodAccess;
    }
}
